package org.openwebtop.sunshine.subversion;

import java.util.List;

import org.openwebtop.sunshine.subversion.model.DiffResult;
import org.openwebtop.sunshine.subversion.model.FileInfo;
import org.openwebtop.sunshine.subversion.model.FileType;
import org.openwebtop.sunshine.subversion.model.RevisionInfo;

public interface SubversionClient {

	public FileType getFileType(String filepath, long revision) throws Exception;

	public FileInfo getFileContents(String filepath, long revision, String encoding) throws Exception;

	public DiffResult getDiffInfo(String filepath, long startRevision, long endRevision, String encoding) throws Exception;

	public List<RevisionInfo> getRevisionInfoListToBase(long revision, int size) throws Exception;

	public List<RevisionInfo> getRevisionInfoListFromLast(long revision, int size) throws Exception;

	public List<RevisionInfo> getRevisionInfoList(long fromRevision, long toRevision, int size) throws Exception;

	public RevisionInfo getRevisionInfo(long revision) throws Exception;

	public long getLastestRevision() throws Exception;

}
